# Accept invitation to a group

Accepts an invitation to join a local group. The user becomes a member with the VIEWER role.
            The pending invite is looked up by (groupId, authenticated user).

            Note: This endpoint is for local groups only. For remote (federated) groups, invite records
            are not stored locally - the client should call the remote server directly with a GroupFederationToken.

Endpoint: POST /api/v1/groups/{groupId}/invites/accept
Version: 1.0
Security: header

## Path parameters:

  - `groupId` (string, required)
    The unique identifier of the group
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

## Response 200 fields (application/json):

  - `groupName` (string, required)
    Group name

  - `groupDisplayName` (string, required)
    Group display name

  - `username` (string, required)
    User name (username)

  - `displayName` (string, required)
    User display name

  - `domain` (string,null)
    User domain

  - `local` (boolean)
    Whether the user is local or not

  - `groupAvatar` (object,null)
    Group avatar upload object

  - `groupAvatar.uploadId` (string, required)
    Internal id
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `groupAvatar.uploaderId` (string,null)
    User who physically uploaded this file. Null for platform-owned uploads (e.g., default covers). This is an audit/meta field — use ownerId for authorization.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `groupAvatar.ownerId` (string, required)
    Entity that owns this upload (user, channel/group, or event). TypeID prefix indicates the owner type.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `groupAvatar.attachedToId` (string,null)
    Entity this upload is attached to (e.g., a post or event). NULL for standalone uploads like avatars, covers, or media library items.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `groupAvatar.uploadType` (string, required)
    Type of the upload
    Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER"

  - `groupAvatar.meta` (object)
    Meta data

  - `groupAvatar.meta.blurhash` (string,null)

  - `groupAvatar.meta.name` (string,null)

  - `groupAvatar.meta.altText` (string,null)

  - `groupAvatar.size` (integer, required)
    Size in bytes of all the files in this upload

  - `groupAvatar.files` (array, required)
    List of all the files this upload has

  - `groupAvatar.files.uri` (string,null, required)
    Full url of the file

  - `groupAvatar.files.fileId` (string, required)
    File id
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `groupAvatar.files.extension` (string, required)
    File extension
    Example: "mp4"

  - `groupAvatar.files.original` (boolean, required)
    true if this file is original, false if it is a derivative

  - `groupAvatar.files.meta` (object, required)
    File metadata. Contains optional values for width, height etc.

  - `groupAvatar.files.meta.duration` (number,null)
    Video duration in seconds

  - `groupAvatar.files.meta.width` (integer,null)
    Media width

  - `groupAvatar.files.meta.height` (integer,null)
    Media height

  - `groupAvatar.files.meta.codec` (string,null)
    Video codec

  - `groupAvatar.files.meta.rotate` (integer,null)
    Rotation in degrees

  - `groupAvatar.files.size` (integer, required)
    File size in bytes

  - `groupAvatar.files.createdAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `groupAvatar.files.updatedAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `groupAvatar.files.type` (string, required)
    File type
    Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER"

  - `groupAvatar.tags` (array, required)
    List of tags attached to upload
    Enum: "Post", "Avatar", "Header", "Album", "Emoji", "Event"

  - `groupAvatar.error` (string,null)
    Upload processing error

  - `groupAvatar.cached` (boolean)
    true if cached

  - `groupAvatar.logs` (string,null)
    Logs

  - `groupAvatar.remote` (boolean)
    true if this upload is remote

  - `groupAvatar.createdAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `groupAvatar.updatedAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `userAvatar` (object,null)
    User avatar upload object

  - `userAvatar.uploadId` (string, required)
    Internal id
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `userAvatar.uploaderId` (string,null)
    User who physically uploaded this file. Null for platform-owned uploads (e.g., default covers). This is an audit/meta field — use ownerId for authorization.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `userAvatar.ownerId` (string, required)
    Entity that owns this upload (user, channel/group, or event). TypeID prefix indicates the owner type.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `userAvatar.attachedToId` (string,null)
    Entity this upload is attached to (e.g., a post or event). NULL for standalone uploads like avatars, covers, or media library items.
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `userAvatar.uploadType` (string, required)
    Type of the upload
    Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER"

  - `userAvatar.meta` (object)
    Meta data

  - `userAvatar.meta.blurhash` (string,null)

  - `userAvatar.meta.name` (string,null)

  - `userAvatar.meta.altText` (string,null)

  - `userAvatar.size` (integer, required)
    Size in bytes of all the files in this upload

  - `userAvatar.files` (array, required)
    List of all the files this upload has

  - `userAvatar.files.uri` (string,null, required)
    Full url of the file

  - `userAvatar.files.fileId` (string, required)
    File id
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `userAvatar.files.extension` (string, required)
    File extension
    Example: "mp4"

  - `userAvatar.files.original` (boolean, required)
    true if this file is original, false if it is a derivative

  - `userAvatar.files.meta` (object, required)
    File metadata. Contains optional values for width, height etc.

  - `userAvatar.files.meta.duration` (number,null)
    Video duration in seconds

  - `userAvatar.files.meta.width` (integer,null)
    Media width

  - `userAvatar.files.meta.height` (integer,null)
    Media height

  - `userAvatar.files.meta.codec` (string,null)
    Video codec

  - `userAvatar.files.meta.rotate` (integer,null)
    Rotation in degrees

  - `userAvatar.files.size` (integer, required)
    File size in bytes

  - `userAvatar.files.createdAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `userAvatar.files.updatedAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `userAvatar.files.type` (string, required)
    File type
    Enum: "VIDEO", "IMAGE", "AUDIO", "DOCUMENT", "OTHER"

  - `userAvatar.tags` (array, required)
    List of tags attached to upload
    Enum: "Post", "Avatar", "Header", "Album", "Emoji", "Event"

  - `userAvatar.error` (string,null)
    Upload processing error

  - `userAvatar.cached` (boolean)
    true if cached

  - `userAvatar.logs` (string,null)
    Logs

  - `userAvatar.remote` (boolean)
    true if this upload is remote

  - `userAvatar.createdAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `userAvatar.updatedAt` (string, required)
    Example: "2022-03-10T16:15:50Z"

  - `groupId` (string, required)
    Group ID
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `memberId` (string, required)
    User who is a member of the group
    Example: "us_01hxcvk1hjexere4pvtrj0ymqq"

  - `roles` (array)
    All role identifiers for this member in the group.
            Includes both predefined roles (owner, admin, moderator, member, viewer)
            and custom roles.

  - `meta` (object,null)
    Additional metadata about this membership

  - `meta.description` (string)
    Optional description or note about this member's role or participation in the group

  - `createdAt` (string,null)
    Example: "2022-03-10T16:15:50Z"

  - `updatedAt` (string,null)
    Example: "2022-03-10T16:15:50Z"

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 403 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 404 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation

## Response 409 fields (application/json):

  - `errorCode` (string, required)
    Error code

  - `message` (string, required)
    Error message

  - `docUrl` (string)
    Link to documentation


